var baseInfoForXlsImportStore;
function baseInfoForXlsImportWin() {
	/**
	 * Excel文件类别的下拉框
	 */
	var typeCombox = new Ext.form.ComboBox({
				fieldLabel : '<image src="'+basePath+'images/must.gif"/>Excel文件类别',
				id : 'ex_publictype_new',
				store : Ext.baseInfoForXlsImport.typeStore,
				displayField : 'ex_publictype_new',
				valueField : 'ex_publictype_new',
				typeAhead : true,
				mode : 'local',
				triggerAction : 'all',
				emptyText : '请选择...',
				readOnly : true,
				selectOnFocus : true,
				anchor : '90%',
				width : 150
			});

	/**
	 * 是否有效的下拉框
	 */
	var isUsedCombox = new Ext.form.ComboBox({
				fieldLabel : '<image src="'+basePath+'images/must.gif"/>是否有效',
				store : Ext.baseInfoForXlsImport.isUsedStore,
				displayField : 'isUsed',
				valueField : 'isUsed_id',
				id : 'isUsed_id',
				typeAhead : true,
				readOnly : true,
				value : 0,
				mode : 'local',
				triggerAction : 'all',
				emptyText : '请选择...',
				selectOnFocus : true,
				anchor : '90%',
				width : 150
			});

	isUsedCombox.on('beforerender', function() {
				this.value = 1;
			});

	var addLine = new Ext.data.Record.create([{
				name : 'exPublicName',
				type : 'string'
			}, {
				name : 'exSubName',
				type : 'string'
			}, {
				name : 'exDatatype',
				type : 'string'
			}, {
				name : 'isNecessary',
				type : 'int'
			}, {
				name : 'isOnly',
				type : 'int'
			}, {
				name : 'exMemo',
				type : 'string'
			}]);

	var baseInfoForXlsImportPanel = new Ext.form.FormPanel({
		anchor : '90%',
		frame : true,
		hideLables : false,
		id : 'addPanelForm',
		buttonAlign : 'right',
		bodyStyle : 'padding:5px 5px 0',
		layout : 'column',
		items : [{
					columnWidth : .5,
					layout : 'form',
					items : [{
								xtype : 'hidden',
								id : 'exPublicId'

							}, {
								layout : 'form',
								items : [typeCombox]
							}, {
								layout : 'form',
								items : [isUsedCombox]

							}]
				}, {
					columnWidth : .5,
					layout : 'form',
					items : [{
								xtype : 'textfield',
								fieldLabel : '<image src="'+basePath+'images/must.gif"/>固定项目名称',
								name : 'exPublicName_new',
								id : 'exPublicName_new',
								anchor : '90%'
							}]

				}, {
					columnWidth : 1,
					layout : 'form',
					items : [{
								xtype : 'textarea',
								fieldLabel : '说明',
								name : 'exMemoMaster',
								id : 'exMemoMaster',
								anchor : '95%'
							}]

				}],
		buttons : [{
			text : '保存',
			handler : function() {
				if (typeCombox.getValue() == null) {
					Ext.Msg.show({
								title : '操作信息',
								msg : 'Excel文件类别不能为空',
								buttons : Ext.Msg.OK
							});
					return;
				}
				if (document.getElementById('exPublicName_new').value == null
						|| document.getElementById('exPublicName_new').value == "") {
					Ext.Msg.show({
								title : '操作信息',
								msg : '固定项目名称不能为空',
								buttons : Ext.Msg.OK
							});
					return;

				}

				var detailStr = [];
				detailStr.splice(0, detailStr.length);
				var modified = [];
				modified.splice(0, modified.length);
				modified = baseInfoForXlsImportStore.modified.slice(0);
				for (var i = 0; i < modified.length; i++) {
					var record = modified[i];
					var type = record.data.exDatatype;
					var subId = Ext.encode(record.data.exSubCode);
					var subName = Ext.encode(record.data.exSubName);
					if ("null" == subId || "\"\"" == subId) {
						Ext.Msg.show({
									title : '操作信息',
									msg : '项目细项不能为空',
									buttons : Ext.Msg.OK
								});
						return;
					}

					if ("null" == subName || "\"\"" == subName) {
						Ext.Msg.show({
									title : '操作信息',
									msg : '项目细项名称不能为空',
									buttons : Ext.Msg.OK
								});
						return;
					}
					if (type != 'S' && type != 'N' && type != 'D') {
						Ext.Msg.show({
									title : '操作信息',
									msg : '数据类型不能为空',
									buttons : Ext.Msg.OK
								});
						return;
					}

					detailStr.push(record.data);
				}
				Ext.Ajax.request({
							url : 'ExeclCustomize!insertOrUpdatePublicMaster.action',
							method : 'post',
							params : {
								exPublictype : typeCombox.getValue(),
								isUsed : isUsedCombox.getValue(),
								exPublicName : baseInfoForXlsImportPanel
										.findById('exPublicName_new')
										.getValue(),
								exMemo : baseInfoForXlsImportPanel
										.findById('exMemoMaster').getValue(),
								exPublicId : baseInfoForXlsImportPanel
										.findById('exPublicId').getValue(),
								exlPublicDetail : "{\"detailStr\":"
										+ Ext.encode(detailStr) + "}"
							},
							success : function() {
								if (baseInfoForXlsImportStore != null) {
									baseInfoForXlsImportStore.removeAll();
									baseInfoForXlsImportWin.hide();
									baseInfoForXlsSelectStore.reload();

								}
								Ext.Msg.show({
											title : '操作信息',
											msg : '数据处理成功',
											buttons : Ext.Msg.OK
										});
							},
							failure : function() {
								Ext.Msg.show({
											title : '操作信息',
											msg : '数据处理异常,请联系管理员',
											buttions : Ext.Msg.OK
										});
							}

						});

			}
		}, {
			text : '删除',
			handler : function() {
				Ext.MessageBox.show({
					title : '提示',
					msg : '确定要删除该基础项设置和所有子项吗?',
					buttons : Ext.MessageBox.OKCANCEL,
					fn : function(btn) {
						if (btn == "ok") {
							Ext.Ajax.request({
										url : 'ExeclCustomize!deleteAll.action',
										method : 'post',
										params : {
											exPublicId : baseInfoForXlsImportPanel
													.findById('exPublicId')
													.getValue()
										},
										success : function() {
											if (baseInfoForXlsImportStore != null) {
												baseInfoForXlsImportWin.hide();
												baseInfoForXlsSelectStore
														.reload();

											}
											Ext.Msg.show({
														title : '操作信息',
														msg : '数据处理成功',
														buttons : Ext.Msg.OK
													});
										},
										failure : function() {
											Ext.Msg.show({
														title : '操作信息',
														msg : '数据处理异常,请联系管理员',
														buttions : Ext.Msg.OK
													});
										}

									});
						}
						if (btn == "cancel") {
							return;
						}
					}

				});
			}
		}, {
			text : '取消',
			handler : function() {
				baseInfoForXlsImportWin.hide();
			}
		}, {
			text : '增加细项',
			handler : function() {
				var initValue = {
					exPublicName : '',
					exSubName : '',
					isNecssary : '',
					isOnly : '',
					exMemo : ''
				};
				var p = new addLine(initValue);
				// alert(Ext.encode(p));
				baseInfoForXlsImporttGrid.stopEditing();
				baseInfoForXlsImportStore.insert(0, p);
				baseInfoForXlsImporttGrid.startEditing(0, 2);
				baseInfoForXlsImporttGrid.view.refresh();
				p.dirty = true;
				p.modified = initValue;
				if (baseInfoForXlsImportStore.modified.indexOf(p) == -1) {
					baseInfoForXlsImportStore.modified.push(p);
				}
			}
		}, {
			text : '删除细项',
			handler : function() {
				var deletedJson = [];
				var length = baseInfoForXlsImporttGrid.getSelectionModel()
						.getSelections().length;
				if (length > 0) {
					Ext.MessageBox.show({
						title : '提示',
						msg : '您选中了' + length + '条记录进行删除,请问您确认吗?',
						buttons : Ext.MessageBox.OKCANCEL,
						fn : function(btn) {
							if (btn == "ok") {
								var rs = baseInfoForXlsImporttGrid
										.getSelectionModel().getSelections();
								for (var i = 0; i < length; i++) {
									if (rs[i].data.exPublicId != "") {
										deletedJson.push(rs[i].data);
									}
									baseInfoForXlsImportStore
											.remove(baseInfoForXlsImportStore
													.getById(rs[i].id));
								};
								Ext.Ajax.request({
									url : 'ExeclCustomize!deleteDetails.action',
									method : 'post',
									params : {
										subIds : "{\"detailIds\":"
												+ Ext.encode(deletedJson) + "}"
									},
									success : function() {
										baseInfoForXlsImporttGrid.getStore()
												.reload();
										Ext.Msg.alert('提示', '删除成功！');

									},
									failure : function() {
										Ext.Msg.alert('警告', '由于异常原因，提交数据失败！');
									}
								});
							}
							if (btn == "cancel") {
								return;
							}
						}
					});
				} else {
					Ext.Msg.alert('警告', '请选择需要删除的记录.');
				}
			}
		}]

	});

	// 子表显示
	baseInfoForXlsImportStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
							url : 'ExeclCustomize!queryPublicDetail.action'
						}),
				reader : new Ext.data.JsonReader({
							root : 'publicDetial.result',
							totalProperty : 'publicDetial.totalCount'
						}, [{
									name : 'exSubId',
									mapping : 'exSubId'
								}, {
									name : 'exPublicid',
									mapping : 'exPublicid'
								}, {
									name : 'exPublicName',
									mapping : 'exPublicName'
								}, {
									name : 'exPublicType',
									mapping : 'exPublicType'
								}, {
									name : 'exSubCode',
									mapping : 'exSubCode'
								}, {
									name : 'exSubName',
									mapping : 'exSubName'
								}, {
									name : 'isNecessary',
									mapping : 'isNecessary'
								}, {
									name : 'exMemo',
									mapping : 'exMemo'
								}, {
									name : 'isOnly',
									mapping : 'isOnly'
								}, {
									name : 'exDatatype',
									mapping : 'exDatatype'
								}])
			});

	// var typecom =
	//
	// typecom.on('beforerender', function() {
	// this.value = 'S';
	// });

	// 查询显示的表格
	var sm = new Ext.grid.CheckboxSelectionModel();
	var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), sm, {
				header : '项目细项',
				dataIndex : 'exSubCode',
				width : 150,
				editor : new Ext.form.TextField({
							name : 'exSubCode',
							id : 'exSubCode',
							anchor : '90%'
						})
			}, {
				header : '项目细项名称',
				dataIndex : 'exSubName',
				width : 150,
				editor : new Ext.form.TextField({
							name : 'exSubName',
							id : 'exSubName',
							anchor : '90%'
						})
			}, {
				header : '数据类型',
				dataIndex : 'exDatatype',
				width : 150,
				editor : new Ext.form.ComboBox({
							store : Ext.baseInfoForXlsImport.dataTypeStore,
							id : 'exDatatype',
							name : 'exDatatype',
							typeAhead : true,
							readOnly : true,
							value : 'S',
							mode : 'local',
							triggerAction : 'all',
							emptyText : '请选择...',
							selectOnFocus : true,
							anchor : '90%'
						}),
				renderer : function(value, cellmeta, record) {
					if (value == 'S') {
						return '字符串';
					} else if (value == 'N') {
						return '数字';
					} else if (value == 'D') {
						return '日期';
					} else {
						return '';
					}

				}

			}, {
				header : '是否必填',
				dataIndex : 'isNecessary',
				width : 150,
				editor : new Ext.form.ComboBox({
							store : Ext.baseInfoForXlsImport.isUsedStore,
							displayField : 'isNecessary',
							valueField : 'isNecessary',
							typeAhead : true,
							mode : 'local',
							id : 'isNecessary',
							value : 0,
							readOnly : true,
							triggerAction : 'all',
							anchor : '90%'

						}),
				renderer : function(value, cellmeta, record) {
					if (value == 0) {
						return '否';
					} else if (value == 1) {
						return '是';
					} else {
						return '';
					}
				}
			}, {
				header : '是否唯一',
				dataIndex : 'isOnly',
				width : 150,
				editor : new Ext.form.ComboBox({
							store : Ext.baseInfoForXlsImport.isUsedStore,
							displayField : 'isOnly',
							valueField : 'isOnly',
							typeAhead : true,
							readOnly : true,
							id : 'isOnly',
							value : 1,
							mode : 'local',
							triggerAction : 'all',
							anchor : '90%'
						}),
				renderer : function(value, cellmeta, record) {

					if (value == 0) {
						return '否';
					} else if (value == 1) {
						return '是';
					} else {
						return '';
					}
				}
			}, {
				header : '说明',
				dataIndex : 'exMemo',
				width : 150,
				editor : new Ext.form.TextField({
							name : 'exMemo',
							id : 'exMemo',
							anchor : '90%'
						})
			}]);

	var baseInfoForXlsImporttGrid = new Ext.grid.EditorGridPanel({
				height : 210,
				anchor : '90%',
				id : 'pbEmp',
				clicksToEdit : 1,
				bbar : new Ext.PagingToolbar({
							pageSize : pageSize,
							store : baseInfoForXlsImportStore,
							displayInfo : true,
							dispalyMsg : '显示第{0}条到{1}条记录，一共{2}条',
							emptyMsg : '没有记录'
						}),
				cm : cm,
				sm : sm,
				store : baseInfoForXlsImportStore,
				loadMask : true,
				loadMask : {
					msg : '正在加载数据...'
				}
			});

	var baseInfoForXlsImportWin = new Ext.Window({
				closable : true,
				draggable : true,
				region : 'center',
				title : '基础项信息',
				width : 910,
				height : 450,
				plain : true,
				items : [baseInfoForXlsImportPanel, baseInfoForXlsImporttGrid],
				listeners : {
					"beforedestroy" : function(obj) {
						return false;
					},
					"beforeshow" : function(obj) {
						return true;
					}
				}
			});
	return baseInfoForXlsImportWin;
};
